2012年01月05日
川俣晶の縁側ソフトウェア技術雑記 total 5138 count

REST対SOAPの問題再び・真の敗者は誰か?

Written By: 川俣 晶連絡先

「なんか、凄く納得した記事だなあ」

「どうして? SOAPはダメじゃなかったの? RESTが有望じゃなかったの?」

「実際には、SOAPがダメとも言い切れないし、RESTを手放しで褒められる状況でもない」

「えー。どうして?」

「内部通信と割り切ったとき、SOAP経由のRPCは便利だ。Visual Studioでアッという間にスケルトンができる。特定ソフト間の通信であり、一般化する必要が無いと割り切るなら凄く簡単。実際、多くを語っていないだけ、手元で稼働している、いくつもの利用事例がある」

「RESTもシンプルだろ?」

「そうとも言い切れない。XXでなければRESTではないと言う宗教的情熱に燃えた信者もけっこういるからだ」

「えー」

「こっちは、『SOAPなんて持ち出さなくてもhttpでXML文書送ればおしまいでしょ?』という感覚でシンプルに行きたいのだ。実際、そのように実装された利用事例も手元に多い」

「そっちも事例が多いのかい」

「その際重要なことは、httpでXML文書を送って終わりにするシンプルさであって、名前なんてどうでもいいのだ」

「でも、RESTと名乗るならこういう条件を満たせって言う人たちがいるわけだね?」

「そうだ。はっきり言って、そんな条件はどうでもいい。こっちはhttpでXML文書を送って終わりでオッケーなんだ。それがRESTの条件を満たさないと言うのなら、RESTと名乗らないだけ。実装を変える必用なんて何も無い。既にニーズを満たしているのだからね」

「じゃあ、この問題の正体ってなんだよ」

「よくある詐欺的トリックの1つだけどさ。A対Bという対立で、Aに間違いが含まれていた場合、Bが正しいように見せかけるというものがある」

「えっ? Aが間違っていたらBが正しいんだろ?」

「いいや。実際にはAの間違いを指摘できることと、Bが正しいことには何ら因果関係が無い」

「えー」

「実際、昔のSOAP推進者の言い分にはかなり無理があっておかしかった。でも、そのことはRESTの正しさを保証するわけではない」

「そうか」

「別に無理の無い範囲でSOAPを使っても問題ないし、SOAPを使わないとしても選択候補はRESTに限定されない。好きなように選んで構わない」

「でもさ。変なプロトコルを自分で考えても通してくれないファイアウォールとかあるだろ?」

「だからさ。httpの上に乗せて通せばいいんだよ」

「それがSOAP流か!」